#ifndef QQ_SQL
#define QQ_SQL

#define qq_sql QQSql::get_instance()

#include <qobject.h>
#include <qrandom.h>
#include <qjsonarray.h>

#include "QQConfig.h"

class QQSql : public QObject
{
	Q_OBJECT
private:
	QQSql(QObject* parent = nullptr);
	~QQSql();
public:
	static QQSql* get_instance();

	void init();

	QQUser get_user(const QString& account);

	bool check_token(const QString& token);

	bool check_token(const QString& account, const QString& token);

	bool check_token_null(const QString& account);

	void update_token(const QString& account, const QString& token);

	bool check_user_exist(const QString& account, const QString& password);

	QString register_new_user(const QString& password, const QString& nickname);

	bool test_is_friend(const QString& account, const QString& friend_account);

	void add_friend(const QString& account, const QString& friend_account);

	void delete_friend(const QString& account, const QString& friend_account);

	void add_message(QQMessage& message);

	void add_message(const QString& sender, const QString& receiver, const QString& content);
private:
	static QQSql* m_instance;
};
#endif // !QQ_SQL
